/*
 * DXObject.h
 *
 *  Created on: Oct 28, 2012
 *      Author: Bhupendra Aole
 */

#ifndef DXOBJECT_H_
#define DXOBJECT_H_

#include <d3d11.h>
#include "DXEngine.h"
#include <d3dx9math.h>

namespace aole {

class DXObject {
protected:
	D3DXVECTOR4 color;

	DXObject() :
			color( D3DXVECTOR4( 0, 1, 0, 1 ) ) {
	}
public:
	virtual int setProperty( const char* name, const char* value );
	virtual void create( DXEngine* engine ) = 0;
	virtual void render( DXEngine* engine ) = 0;
	virtual ~DXObject() {
	}

	static HRESULT CompileShaderFromFile( WCHAR* szFileName,
			LPCSTR szEntryPoint, LPCSTR szShaderModel, ID3DBlob** ppBlobOut );
};

} /* namespace aole */

#endif /* DXOBJECT_H_ */
